Express 5 への移行 | 您所在的位置:网站首页 › Express での静的ファイルの提供 › Express 5 への移行 |
Express
ホーム
概説
インストール
Hello World
Express ジェネレーター
基本的なルーティング
静的ファイル
FAQ
ガイド
ルーティング
ミドルウェアの作成
ミドルウェアの使用
テンプレート・エンジンの使用
エラー処理
デバッグ
プロキシーの背後の Express
Express 4 への移行
Express 5 への移行
データベースの統合
API リファレンス
4.x
3.x (非推奨)
2.x (非推奨)
高度なトピック
テンプレート・エンジン
セキュリティー更新
セキュリティーに関するベスト・プラクティス
パフォーマンスに関するベスト・プラクティス
リソース
用語集
ミドルウェア
コミュニティー
StrongLoop / IBMによって提供されるこの翻訳. 本書は、英語の資料と比較すると古くなっている可能性があります。最新の更新については、英語版の資料を参照してください。 ✖ Express 5 への移行 概説Express 5.0 は、まだアルファ・リリースの段階ですが、ここでは本リリースにおける変更のプレビューを示し、Express 4 アプリケーションを Express 5 に移行する方法を説明します。 Express 5 は Express 4 とあまり変わりません。API の変更は、3.0 から 4.0 への変更ほど大きいものではありません。基本的な API は同じままですが、それでも互換性のない変更が行われています。つまり、Express 5 を使用するように既存の Express 4 を更新すると、機能しなくなる可能性があります。 最新のアルファをインストールして Express 5 をプレビューするには、アプリケーションのルート・ディレクトリーで次のコマンドを入力します。 $ npm install express@>=5.0.0-alpha.1 --saveその後、自動テストを実行して、どの機能が失敗するかを確認し、下記の更新に従って問題を修正することができます。テストの失敗に対応した後、アプリケーションを実行して、どのようなエラーが発生するかを確認します。サポートされていないメソッドまたはプロパティーをアプリケーションが使用している場合は、すぐに判明します。 Express 5 における変更点次に、Express のユーザーに影響を与える (アルファ 2 リリースの時点での) 変更のリストを示します。 予定されているすべての機能のリストについては、プル要求を参照してください。 削除されたメソッドとプロパティー app.del() app.param(fn) メソッド名の複数化 app.param(name, fn) の name 引数の先頭コロン req.param(name) res.json(obj, status) res.jsonp(obj, status) res.send(body, status) res.send(status) res.sendfile()変更 app.router req.host req.query改善 res.render() 削除されたメソッドとプロパティーアプリケーションで以下のいずれかのメソッドまたはプロパティーを使用すると、異常終了します。そのため、バージョン 5 に更新した後で、アプリケーションを変更する必要があります。 app.del()Express 5 は、app.del() 関数をサポートしなくなりました。この関数を使用すると、エラーがスローされます。HTTP DELETE ルートを登録するには、代わりに app.delete() 関数を使用してください。 最初は del が delete の代わりに使用されていました。delete は、JavaScript で予約されているキーワードであるためです。しかし、ECMAScript 6 以降では、delete およびその他の予約済みキーワードを正式にプロパティー名として使用できます。ここで、app.del 関数の非推奨につながった議論を読むことができます。 app.param(fn)app.param(fn) シグニチャーは、app.param(name, fn) 関数の動作を変更するために使用されていました。v4.11.0 以降では非推奨になったため、Express 5 は完全にサポートしなくなりました。 メソッド名の複数化以下のメソッド名は複数形になりました。Express 4 では、以前のメソッドを使用すると、非推奨の警告が出されていました。Express 5 では、完全にサポートされなくなりました。 req.acceptsCharset() は req.acceptsCharsets() に置き換えられます。 req.acceptsEncoding() は req.acceptsEncodings() に置き換えられます。 req.acceptsLanguage() は req.acceptsLanguages() に置き換えられます。 app.param(name, fn) の name の先頭コロン (:)app.param(name, fn) 関数の name の先頭コロン文字 (:) は、Express 3 の残余物であり、Express 4 では後方互換性のためにサポートされていましたが、非推奨の通知が出されてました。Express 5 では、サイレントに無視して、先頭にコロンを付けない name パラメーターを使用します。 app.param に関する Express 4 の資料では、先頭のコロンについて言及していないため、この資料に従う場合には、コードに影響は及ばないはずです。 req.param(name)この混乱を招く可能性がある危険なメソッドは、フォーム・データを取得するためのものでしたが、削除されました。今後は、実行依頼されたパラメーター名を req.params、req.body、または req.query オブジェクトで具体的に見つける必要があります。 res.json(obj, status)Express 5 は、シグニチャー res.json(obj, status) をサポートしなくなりました。代わりに、状況を設定してから、res.status(status).json(obj) のように res.json() メソッドにチェーニングします。 res.jsonp(obj, status)Express 5 は、シグニチャー res.jsonp(obj, status) をサポートしなくなりました。代わりに、状況を設定してから、res.status(status).jsonp(obj) のように res.jsonp() メソッドにチェーニングします。 res.send(body, status)Express 5 は、シグニチャー res.send(obj, status) をサポートしなくなりました。代わりに、状況を設定してから、res.status(status).send(obj) のように res.send() メソッドにチェーニングします。 res.send(status)Express 5 は、シグニチャー res.send(status) をサポートしなくなりました。ここで、status は数値です。代わりに、res.sendStatus(statusCode) 関数を使用します。この関数は、HTTP 応答ヘッダーの状況コードを設定して、コードのテキスト版 (「Not Found」、「Internal Server Error」など) を送信します。 res.send() 関数を使用して数値を送信する必要がある場合は、数値を引用してストリングに変換し、Express によって、サポートされない以前のシグニチャーを使用しようとしていると解釈されないようにします。 res.sendfile()res.sendfile() 関数は、Express 5 ではキャメルケース版の res.sendFile() に置き換えられます。 変更 app.routerapp.router オブジェクトは、Express 4 で削除されましたが、Express 5 で復帰しました。アプリケーションが明示的にロードする必要があった Express 3 とは異なり、新しいバージョンでは、このオブジェクトは基本の Express ルーターの単なる参照です。 req.hostExpress 4 では、req.host 関数は、ポート番号が存在する場合に、ポート番号を誤って削除していました。Express 5 では、ポート番号は維持されます。 req.queryExpress 4.7 および Express 5 以降では、照会ストリング解析ロジックで独自の関数を使用する場合に、照会パーサー・オプションは false を受け入れて、照会ストリングの解析を無効にすることができます。 改善 res.render()このメソッドは、すべてのビュー・エンジンに非同期動作を適用するようになり、同期実装を使用して推奨インターフェースに違反していたビュー・エンジンに起因するバグを回避します。 |
CopyRight 2018-2019 实验室设备网 版权所有 |